<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>GSoC2011SfM: OpencvSfM::TrackOfPoints Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">GSoC2011SfM
   &#160;<span id="projectnumber">0.1</span>
   </div>
   <div id="projectbrief">Google Summer of Code 2011: Structure from motion</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>OpencvSfM</b>      </li>
      <li class="navelem"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">OpencvSfM::TrackOfPoints Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="OpencvSfM::TrackOfPoints" -->
<p>This class store the track of keypoints. A track is a connected set of matching keypoints across multiple images.  
 <a href="class_opencv_sf_m_1_1_track_of_points.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>&gt;</code></p>

<p><a href="class_opencv_sf_m_1_1_track_of_points-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Type , int size&gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a25258b72fc3d724deab33e42856c7e7f">operator cv::Vec&lt; Type, size &gt; &amp;</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a83543ac9e156336f5ec070d2963f185c">addMatch</a> (const int image_src, const int point_idx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#aea06a066b4be5fa2ff5ef09cea7fb745">containImage</a> (const int image_wanted) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ac8a9ed8a3334e43833a5e14e79689390">containPoint</a> (const int image_src, const int point_idx1) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a3e18eabd0bbdc80e5a183eaf3d6a8d69">getNbTrack</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">cv::DMatch&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a8d15153ed498789f27c319dadd6c58fd">toDMatch</a> (const int img1, const int img2) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a8bca030b779db3f434c29cdf6ad155db">getMatch</a> (const unsigned int index, int &amp;idImage, int &amp;idPoint) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#af61c242e5fabb09d85305426ab46307c">getPointIndex</a> (const unsigned int image) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ab64160435d833ce829d6583bb181944a">getImageIndex</a> (const unsigned int idx) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a0881b49d483de9be1c7e0b0d3bbcc306">triangulateLinear</a> (std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;points_to_track, cv::Vec3d &amp;points3D, const std::vector&lt; bool &gt; &amp;masks=std::vector&lt; bool &gt;())</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a2b4033102211c324ead8214849a6da93">triangulateRobust</a> (std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;points_to_track, cv::Vec3d &amp;points3D, double reproj_error=4, const std::vector&lt; bool &gt; &amp;masks=std::vector&lt; bool &gt;())</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#aec31d0a12aa5085776a98cea6708ee5e">removeOutliers</a> (std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;points_to_track, double reproj_error=4, std::vector&lt; bool &gt; *masks=NULL)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ab3d94ed06541dc65c1670925bc5cde1a">set3DPosition</a> (cv::Vec3d newPoint)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">cv::Ptr&lt; cv::Vec3d &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a33e08312ec77fe141e106d570ce75d2a">get3DPosition</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#aae4506ca2306c22e44d4577467b1b545">getColor</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a8dd77a29977f8231ebcf17bcabc8abc8">setColor</a> (unsigned int c)</td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a7ee400c9fbb6a990f9d34a2370ddac95">keepTrackHavingImage</a> (unsigned int idx_image, std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; &amp;tracks)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a8d61827e55cee2bde8957423bc321a47">keepTrackWithImages</a> (const std::vector&lt; int &gt; &amp;imgList, std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; &amp;tracks)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#abe9770a4050b3b9d66e4eab14a7fa5fc">mixTracks</a> (const std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; &amp;list_tracks, std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; *mixed_tracks)</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ad356faa6559c985755242642b50f3145">errorEstimate</a> (std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;points_to_track, cv::Vec3d &amp;points3D, const std::vector&lt; bool &gt; &amp;masks=std::vector&lt; bool &gt;()) const </td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad47f8be9467b36497a7484aea438cbcc"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::point3D" ref="ad47f8be9467b36497a7484aea438cbcc" args="" -->
cv::Ptr&lt; cv::Vec3d &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ad47f8be9467b36497a7484aea438cbcc">point3D</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The corresponding 3D coordinates. If not available, Ptr is empty. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a03a4468cd94b38de2b8a9787379801"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::images_indexes_" ref="a3a03a4468cd94b38de2b8a9787379801" args="" -->
std::vector&lt; unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a3a03a4468cd94b38de2b8a9787379801">images_indexes_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of image indexes of unordered points. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a245986f9cdf722e5aec386585677a188"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::point_indexes_" ref="a245986f9cdf722e5aec386585677a188" args="" -->
std::vector&lt; unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a245986f9cdf722e5aec386585677a188">point_indexes_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of point indexes of unordered points. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2466ba86153215a339806c9a86322195"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::color" ref="a2466ba86153215a339806c9a86322195" args="" -->
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#a2466ba86153215a339806c9a86322195">color</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Color of this point (computed using the mean of every 2D points projections. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#af55a2dcf8abb42bdb1827e38eee9866b">good_values</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ada7b5f6522454fe0a57438396e3ef24c">track_consistance</a></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99332a33eb7c50aa72546fd9f3783269"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::SequenceAnalyzer" ref="a99332a33eb7c50aa72546fd9f3783269" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>SequenceAnalyzer</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class store the track of keypoints. A track is a connected set of matching keypoints across multiple images. </p>
<p>This class can be used as a Vec3d because it's the projection of a 3D points Of course, use triangulate method before to create this 3D point!</p>
<p>Discussion: Store index of points or 2D position? </p>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00023">23</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a83543ac9e156336f5ec070d2963f185c"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::addMatch" ref="a83543ac9e156336f5ec070d2963f185c" args="(const int image_src, const int point_idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool OpencvSfM::TrackOfPoints::addMatch </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>image_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>point_idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function add matches to track </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">image_src</td><td>index of source matches image </td></tr>
    <tr><td class="paramname">point_idx</td><td>index of point in source image </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this match is correct, false if inconsistent with Snavely's rules. </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00056">56</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_sequence_analyzer_8cpp_source.html#l00181">OpencvSfM::SequenceAnalyzer::addMatches()</a>, <a class="el" href="_tracks_of_points_8cpp_source.html#l00361">mixTracks()</a>, and <a class="el" href="_sequence_analyzer_8cpp_source.html#l00384">OpencvSfM::SequenceAnalyzer::read()</a>.</p>

</div>
</div>
<a class="anchor" id="aea06a066b4be5fa2ff5ef09cea7fb745"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::containImage" ref="aea06a066b4be5fa2ff5ef09cea7fb745" args="(const int image_wanted) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool OpencvSfM::TrackOfPoints::containImage </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>image_wanted</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function is used to know if the track contains the image </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">image_wanted</td><td>index of query image </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this track contain points from the query image </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00066">66</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_structure_estimator_8cpp_source.html#l00046">OpencvSfM::StructureEstimator::computeStructure()</a>, <a class="el" href="_points_to_track_8cpp_source.html#l00190">OpencvSfM::PointsToTrack::getKeyMatches()</a>, <a class="el" href="_euclidean_estimator_8cpp_source.html#l00652">OpencvSfM::EuclideanEstimator::initialReconstruction()</a>, <a class="el" href="_tracks_of_points_8cpp_source.html#l00341">keepTrackHavingImage()</a>, and <a class="el" href="_tracks_of_points_8cpp_source.html#l00406">keepTrackWithImages()</a>.</p>

</div>
</div>
<a class="anchor" id="ac8a9ed8a3334e43833a5e14e79689390"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::containPoint" ref="ac8a9ed8a3334e43833a5e14e79689390" args="(const int image_src, const int point_idx1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool OpencvSfM::TrackOfPoints::containPoint </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>image_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>point_idx1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function is used to know if the track contains the query point </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">image_src</td><td>index of query image </td></tr>
    <tr><td class="paramname">point_idx1</td><td>index of point in query image </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this track contain the point from the query image </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00095">95</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_sequence_analyzer_8cpp_source.html#l00181">OpencvSfM::SequenceAnalyzer::addMatches()</a>, and <a class="el" href="_tracks_of_points_8cpp_source.html#l00361">mixTracks()</a>.</p>

</div>
</div>
<a class="anchor" id="ad356faa6559c985755242642b50f3145"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::errorEstimate" ref="ad356faa6559c985755242642b50f3145" args="(std::vector&lt; PointOfView &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; PointsToTrack &gt; &gt; &amp;points_to_track, cv::Vec3d &amp;points3D, const std::vector&lt; bool &gt; &amp;masks=std::vector&lt; bool &gt;()) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double OpencvSfM::TrackOfPoints::errorEstimate </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>points_to_track</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Vec3d &amp;&#160;</td>
          <td class="paramname"><em>points3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>masks</em> = <code>std::vector&lt;bool&gt;(&#160;)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Comptue an estimation of 2D reprojection error </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cameras</td><td>list of cameras </td></tr>
    <tr><td class="paramname">points_to_track</td><td>list of 2D points </td></tr>
    <tr><td class="paramname">points3D</td><td>3d points to project with cameras </td></tr>
    <tr><td class="paramname">masks</td><td>wanted points </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>estimation of distance detween projections and measures. </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00156">156</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_tracks_of_points_8cpp_source.html#l00181">triangulateLinear()</a>.</p>

</div>
</div>
<a class="anchor" id="a33e08312ec77fe141e106d570ce75d2a"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::get3DPosition" ref="a33e08312ec77fe141e106d570ce75d2a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Ptr&lt;cv::Vec3d&gt; OpencvSfM::TrackOfPoints::get3DPosition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use this function to get the 3D point corresponding to this track </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer on the 3D coordinates (could be NULL!) </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00183">183</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_structure_estimator_8cpp_source.html#l00095">OpencvSfM::StructureEstimator::removeOutliersTracks()</a>.</p>

</div>
</div>
<a class="anchor" id="aae4506ca2306c22e44d4577467b1b545"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::getColor" ref="aae4506ca2306c22e44d4577467b1b545" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int OpencvSfM::TrackOfPoints::getColor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use this function to get the color of this track </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>color of this track (ARGB packed into a int) </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00189">189</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_sequence_analyzer_8cpp_source.html#l00467">OpencvSfM::SequenceAnalyzer::write()</a>.</p>

</div>
</div>
<a class="anchor" id="ab64160435d833ce829d6583bb181944a"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::getImageIndex" ref="ab64160435d833ce829d6583bb181944a" args="(const unsigned int idx) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OpencvSfM::TrackOfPoints::getImageIndex </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>use this function to get the image corresponding to the nth entry of this track </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>index of wanted point </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of image </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00124">124</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_structure_estimator_8cpp_source.html#l00046">OpencvSfM::StructureEstimator::computeStructure()</a>.</p>

</div>
</div>
<a class="anchor" id="a8bca030b779db3f434c29cdf6ad155db"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::getMatch" ref="a8bca030b779db3f434c29cdf6ad155db" args="(const unsigned int index, int &amp;idImage, int &amp;idPoint) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::getMatch </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>idImage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>idPoint</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>use this function to get the n^th match value from this track </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>which match </td></tr>
    <tr><td class="paramname">idImage</td><td>out value of the image index </td></tr>
    <tr><td class="paramname">idPoint</td><td>out value of the point index </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00145">145</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3e18eabd0bbdc80e5a183eaf3d6a8d69"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::getNbTrack" ref="a3e18eabd0bbdc80e5a183eaf3d6a8d69" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int OpencvSfM::TrackOfPoints::getNbTrack </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function is used to get the numbers of image for this track </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if inconsistent, &gt;= 2 else </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00085">85</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_structure_estimator_8cpp_source.html#l00012">OpencvSfM::StructureEstimator::computeStructure()</a>, <a class="el" href="_structure_estimator_8cpp_source.html#l00095">OpencvSfM::StructureEstimator::removeOutliersTracks()</a>, and <a class="el" href="_sequence_analyzer_8cpp_source.html#l00467">OpencvSfM::SequenceAnalyzer::write()</a>.</p>

</div>
</div>
<a class="anchor" id="af61c242e5fabb09d85305426ab46307c"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::getPointIndex" ref="af61c242e5fabb09d85305426ab46307c" args="(const unsigned int image) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OpencvSfM::TrackOfPoints::getPointIndex </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>image</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>use this function to get the index point of the wanted image </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>index of wanted image </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>index of point </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00110">110</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_points_to_track_8cpp_source.html#l00190">OpencvSfM::PointsToTrack::getKeyMatches()</a>.</p>

</div>
</div>
<a class="anchor" id="a7ee400c9fbb6a990f9d34a2370ddac95"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::keepTrackHavingImage" ref="a7ee400c9fbb6a990f9d34a2370ddac95" args="(unsigned int idx_image, std::vector&lt; TrackOfPoints &gt; &amp;tracks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::keepTrackHavingImage </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>idx_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>tracks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use this function to keep only tracks having image from first parameter </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">idx_image</td><td>index of needed image </td></tr>
    <tr><td class="paramname">tracks</td><td>vector of matches to clean... </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00341">341</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8d61827e55cee2bde8957423bc321a47"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::keepTrackWithImages" ref="a8d61827e55cee2bde8957423bc321a47" args="(const std::vector&lt; int &gt; &amp;imgList, std::vector&lt; TrackOfPoints &gt; &amp;tracks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::keepTrackWithImages </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>imgList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>tracks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use this function to keep only tracks having at least 2 images from first parameter </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">imgList</td><td>Needed images indexes </td></tr>
    <tr><td class="paramname">tracks</td><td>vector of matches to clean... </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00406">406</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="abe9770a4050b3b9d66e4eab14a7fa5fc"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::mixTracks" ref="abe9770a4050b3b9d66e4eab14a7fa5fc" args="(const std::vector&lt; TrackOfPoints &gt; &amp;list_tracks, std::vector&lt; TrackOfPoints &gt; *mixed_tracks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::mixTracks </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>list_tracks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html">TrackOfPoints</a> &gt; *&#160;</td>
          <td class="paramname"><em>mixed_tracks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>add to mixed_tracks the new tracks from list_tracks who are not in mixed_tracks. Of course, as a track of points contains only indexes, be careful to mix two compatible vectors (i.e. share the same points indexes) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list_tracks</td><td>first list of tracks to add into mixed_tracks </td></tr>
    <tr><td class="paramname">mixed_tracks</td><td>output list of tracks </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00361">361</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a25258b72fc3d724deab33e42856c7e7f"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::operator cv::Vec&lt; Type, size &gt; &amp;" ref="a25258b72fc3d724deab33e42856c7e7f" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Type , int size&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">OpencvSfM::TrackOfPoints::operator cv::Vec&lt; Type, size &gt; &amp; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>cast operator to use this object as a 3D point! </p>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00047">47</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

</div>
</div>
<a class="anchor" id="aec31d0a12aa5085776a98cea6708ee5e"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::removeOutliers" ref="aec31d0a12aa5085776a98cea6708ee5e" args="(std::vector&lt; PointOfView &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; PointsToTrack &gt; &gt; &amp;points_to_track, double reproj_error=4, std::vector&lt; bool &gt; *masks=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::removeOutliers </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>points_to_track</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>reproj_error</em> = <code>4</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
          <td class="paramname"><em>masks</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>From the list of points of this track, remove each 2D points when reprojection error &gt; reproj_error </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cameras</td><td>cameras used to compute projection of 3D point. </td></tr>
    <tr><td class="paramname">points_to_track</td><td>2D points used to compute reprojection error </td></tr>
    <tr><td class="paramname">reproj_error</td><td>Threshold used to reject outliners </td></tr>
    <tr><td class="paramname">masks</td><td>used to knwo which point this function have to test. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00307">307</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_structure_estimator_8cpp_source.html#l00095">OpencvSfM::StructureEstimator::removeOutliersTracks()</a>.</p>

</div>
</div>
<a class="anchor" id="ab3d94ed06541dc65c1670925bc5cde1a"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::set3DPosition" ref="ab3d94ed06541dc65c1670925bc5cde1a" args="(cv::Vec3d newPoint)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::set3DPosition </td>
          <td>(</td>
          <td class="paramtype">cv::Vec3d&#160;</td>
          <td class="paramname"><em>newPoint</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use this function to change the 3D coordinates corresponding to this track </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">newPoint</td><td>new 3D coordinates </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00172">172</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8dd77a29977f8231ebcf17bcabc8abc8"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::setColor" ref="a8dd77a29977f8231ebcf17bcabc8abc8" args="(unsigned int c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OpencvSfM::TrackOfPoints::setColor </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use this function to change the color of this track </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>new color (ARGB packed into a int) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00194">194</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_sequence_analyzer_8cpp_source.html#l00384">OpencvSfM::SequenceAnalyzer::read()</a>.</p>

</div>
</div>
<a class="anchor" id="a8d15153ed498789f27c319dadd6c58fd"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::toDMatch" ref="a8d15153ed498789f27c319dadd6c58fd" args="(const int img1, const int img2) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DMatch OpencvSfM::TrackOfPoints::toDMatch </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>img1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>img2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>use this function to create a DMatch value from this track </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">img1</td><td>train match image </td></tr>
    <tr><td class="paramname">img2</td><td>query match image </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>DMatch value </dd></dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00115">115</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_euclidean_estimator_8cpp_source.html#l00652">OpencvSfM::EuclideanEstimator::initialReconstruction()</a>.</p>

</div>
</div>
<a class="anchor" id="a0881b49d483de9be1c7e0b0d3bbcc306"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::triangulateLinear" ref="a0881b49d483de9be1c7e0b0d3bbcc306" args="(std::vector&lt; PointOfView &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; PointsToTrack &gt; &gt; &amp;points_to_track, cv::Vec3d &amp;points3D, const std::vector&lt; bool &gt; &amp;masks=std::vector&lt; bool &gt;())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double OpencvSfM::TrackOfPoints::triangulateLinear </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>points_to_track</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Vec3d &amp;&#160;</td>
          <td class="paramname"><em>points3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>masks</em> = <code>std::vector&lt;bool&gt;(&#160;)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Using cameras and 2D points, try to find the 3D coordinates </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cameras</td><td>cameras used to compute projection of 3D point. </td></tr>
    <tr><td class="paramname">points_to_track</td><td>2D points used to compute projection </td></tr>
    <tr><td class="paramname">points3D</td><td>3D coordinates of this tracks </td></tr>
    <tr><td class="paramname">masks</td><td>used to knwo which point this function have to use. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00181">181</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_tracks_of_points_8cpp_source.html#l00238">triangulateRobust()</a>.</p>

</div>
</div>
<a class="anchor" id="a2b4033102211c324ead8214849a6da93"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::triangulateRobust" ref="a2b4033102211c324ead8214849a6da93" args="(std::vector&lt; PointOfView &gt; &amp;cameras, const std::vector&lt; cv::Ptr&lt; PointsToTrack &gt; &gt; &amp;points_to_track, cv::Vec3d &amp;points3D, double reproj_error=4, const std::vector&lt; bool &gt; &amp;masks=std::vector&lt; bool &gt;())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double OpencvSfM::TrackOfPoints::triangulateRobust </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="class_opencv_sf_m_1_1_point_of_view.html">PointOfView</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; cv::Ptr&lt; <a class="el" href="class_opencv_sf_m_1_1_points_to_track.html">PointsToTrack</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>points_to_track</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Vec3d &amp;&#160;</td>
          <td class="paramname"><em>points3D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>reproj_error</em> = <code>4</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>masks</em> = <code>std::vector&lt;bool&gt;(&#160;)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Using cameras and 2D points, try to find the best 3D coordinates which minimize the reprojection error using a RANSAC estimation </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cameras</td><td>cameras used to compute projection of 3D point. </td></tr>
    <tr><td class="paramname">points_to_track</td><td>2D points used to compute projection </td></tr>
    <tr><td class="paramname">points3D</td><td>3D coordinates of the best estimation </td></tr>
    <tr><td class="paramname">reproj_error</td><td>Threshold used to reject outliners </td></tr>
    <tr><td class="paramname">masks</td><td>used to knwo which point this function have to use. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_tracks_of_points_8cpp_source.html#l00238">238</a> of file <a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a>.</p>

<p>Referenced by <a class="el" href="_structure_estimator_8cpp_source.html#l00012">OpencvSfM::StructureEstimator::computeStructure()</a>, and <a class="el" href="_structure_estimator_8cpp_source.html#l00095">OpencvSfM::StructureEstimator::removeOutliersTracks()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="af55a2dcf8abb42bdb1827e38eee9866b"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::good_values" ref="af55a2dcf8abb42bdb1827e38eee9866b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;bool&gt; <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#af55a2dcf8abb42bdb1827e38eee9866b">OpencvSfM::TrackOfPoints::good_values</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sometimes a 2d point is not good... This vector help us to know which points are correct... </p>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00036">36</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_tracks_of_points_8cpp_source.html#l00056">addMatch()</a>, <a class="el" href="_tracks_of_points_8cpp_source.html#l00095">containPoint()</a>, <a class="el" href="_tracks_of_points_8cpp_source.html#l00307">removeOutliers()</a>, and <a class="el" href="_sequence_analyzer_8cpp_source.html#l00467">OpencvSfM::SequenceAnalyzer::write()</a>.</p>

</div>
</div>
<a class="anchor" id="ada7b5f6522454fe0a57438396e3ef24c"></a><!-- doxytag: member="OpencvSfM::TrackOfPoints::track_consistance" ref="ada7b5f6522454fe0a57438396e3ef24c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="class_opencv_sf_m_1_1_track_of_points.html#ada7b5f6522454fe0a57438396e3ef24c">OpencvSfM::TrackOfPoints::track_consistance</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>if &lt;0 the track is inconsistent if &gt;0 represent the degree of consistence ( higher is better ) </p>

<p>Definition at line <a class="el" href="_tracks_of_points_8h_source.html#l00041">41</a> of file <a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a>.</p>

<p>Referenced by <a class="el" href="_tracks_of_points_8cpp_source.html#l00056">addMatch()</a>, <a class="el" href="_sequence_analyzer_8cpp_source.html#l00384">OpencvSfM::SequenceAnalyzer::read()</a>, and <a class="el" href="_sequence_analyzer_8cpp_source.html#l00467">OpencvSfM::SequenceAnalyzer::write()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>D:/Travail/These/Determination caracteristiques camera/GSoC/SfM/src/<a class="el" href="_tracks_of_points_8h_source.html">TracksOfPoints.h</a></li>
<li>D:/Travail/These/Determination caracteristiques camera/GSoC/SfM/src/<a class="el" href="_tracks_of_points_8cpp_source.html">TracksOfPoints.cpp</a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Sun Aug 21 2011 16:45:54 for GSoC2011SfM by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
